// 修饰符(类中的成员的修饰符):主要是描述类中的成员(属性，构造函数,方法)的可访问性
// 类中的成员都有自己默认的访问修饰符 public
// public修饰符 ,类中成员默认的修饰符,代表的是公共的,任何位置都可以访问类中的成员(公共)
// private修饰符,类中的成员如果使用了private来修饰,那么外部是无法访问这个成员数据的,当然，子类也是无法访问该成员数据的(私有)
// protected修饰符,类中的成员如果使用protected来修饰,那么外部是无法访问这个成员数据的，当然，子类是可以访问该成员数据的(受保护的)
;
(() => {
    // 定义一个类
    class Person {
        // 属性 private 修饰属性 成员
        // private name: string
        // 属性 protected 修饰属性 成员
        // protected name: string
        // public name: string
        // 构造函数
        constructor(name) {
            // 更新属性
            this.name = name;
        }
        // 方法
        eat() {
            console.log('哈哈哈哈哈哈哈说', this.name);
        }
    }
    class Student extends Person {
        constructor(name) {
            super(name);
        }
        play() {
            console.log(this.name);
        }
    }
    // 实例化对象
    const per = new Person('胭脂');
    // 类的外部可以访问类中的属性成员
    console.log(per.name);
    per.eat();
    // 实例化子类
    const student = new Student('嘿嘿');
    console.log(student.name);
})();
